﻿$(document).ready(function () {
    //Prepare jtable plugin
    $('#tbl-actividades-default').jtable({
        selecting: true,
        actions: {
            listAction: "/AEscolar/_Load_ActividadesDef",
            deleteAction: '/AEscolar/_Delete_ActividadDef',
            updateAction: '/AEscolar/_Update_ActividadDef',
            createAction: '/AEscolar/_New_ActividadDef'
        },
        fields: {
            ID: {
                key: true,
                list: false,
                create: false,
                edit: false
            },
            Num: {
                title: 'No.',
                list: true,
                create: false,
                edit: false,
                width: '30px',
                center: true
            },
            Nombre: {
                title: 'Nombre de la Evaluación',
                width: '175px'
            },
            Porcentaje: {
                title: 'Porcentaje de Evaluación',
                list: false,
                create: true,
                edit: true
            },
            PorcentajeString: {
                title: 'Porcentaje de Evaluación',
                list: true,
                create: false,
                width: '100px',
                center: true,
                type: 'hideEditOrCreate'
            },
            Editable: {
                title: '¿El profesor podrá desglosar esta evaluación?',
                list: false,
                create: true,
                edit: true,
                type: 'radiobutton',
                options: { 'True': 'Si',
                    'False': 'No'
                }
            },
            DescEditable: {
                title: '¿La evaluación se podrá desglosar en sub-actividades?',
                create: false,
                list: true,
                type: 'hideEditOrCreate'
            }
        },
        messages: {
            serverCommunicationError: 'Ocurrio un error al intentar comunicarse con el servidor.',
            loadingMessage: 'Cargando los registros...',
            noDataAvailable: '¡No se encontro ningun registro!',
            addNewRecord: '+ Agregar nueva actividad evaluativa',
            editRecord: 'Editar Registro',
            areYouSure: '¿Esta seguro de la operación?',
            deleteConfirmation: '¿Esta seguro que desea eliminar el registro?',
            save: 'Guardar',
            saving: 'Guardando',
            cancel: 'Cancelar',
            deleteText: 'Eliminar',
            deleting: 'Eliminando',
            error: 'Error',
            close: 'Cerrar',
            cannotLoadOptionsFor: 'No se pudo cargar las opciones del campo {0}',
            pagingInfo: 'Mostrando {0} de {1} de {2} registros',
            canNotDeletedRecords: 'No se puede eliminar {0} de {1} registros',
            deleteProggress: 'Eliminando {0} de {1} registros, Por favor espere...'
        },
        formCreated: function (event, data) {
            //Activamos el RadioButton de edicion
            if (data.formType == 'edit') {
                var edit = data.record.Editable;
                if (edit) {
                    data.form.find('input[name="Editable"]').filter("[value=True]").prop("checked", true);
                } else {
                    data.form.find('input[name="Editable"]').filter("[value=False]").prop("checked", true);
                }
            }

            //Campo de Nombre de la Actividad
            data.form.find('input[name="Nombre"]').addClass(
                'validate[required]');
            data.form.find('input[name="Nombre"]').css("width", "250px");
            data.form.find('input[name="Nombre"]').attr("maxlength", "20");
            data.form.find('input[name="Nombre"]').attr("placeholder", "Ej: Actividad 1");
            //Campo de Porcentaje
            data.form.find('input[name="Porcentaje"]').addClass(
                'validate[required, min[1], max[100], custom[integer]]');
            data.form.find('input[name="Porcentaje"]').css("width", "45px");
            data.form.find('input[name="Porcentaje"]').attr("maxlength", "3");
            data.form.find('input[name="Porcentaje"]').attr("placeholder", "Ej: 25");
            //Campo de Editable
            data.form.find('input[name="Editable"]').addClass(
                'validate[required]');
            data.form.validationEngine();
        },
        formSubmitting: function (event, data) {
            var valido = data.form.validationEngine('validate');
            //Si estamos en modo "EDIT", debemos de modificar los campos "STRING" de 'Porcentaje' y 'Editable'
            if ((valido) || (data.formType == 'edit')) {
                var editDesc = data.form.find('input[name="Editable"]').filter("[value=True]").prop("checked") ? 'El Maestro podrá desglosar esta evaluación' : 'Esta actividad no se podrá desglosar';
                data.form.find('input[name="PorcentajeString"]').val(data.form.find('input[name="Porcentaje"]').val() + '%');
                data.form.find('input[name="DescEditable"]').val(editDesc);
            }
            return valido;
        },
        formClosed: function (event, data) {
            data.form.validationEngine('hide');
            data.form.validationEngine('detach');
        },
        recordDeleted: ReCalcularTotal,
        recordAdded: ReCalcularTotal,
        recordUpdated: ReCalcularTotal,
        recordsLoaded: ReCalcularTotal_FirstTime
    });

    //Load person list from server
    $('#tbl-actividades-default').jtable('load');
});

function ReCalcularTotal(event, data) {
    CalcularTotalPercent();
}

function ReCalcularTotal_FirstTime(event, data) {
    CalcularTotalPercent({LoadFirstTime: true });
}

